// pages/search/search.js
const DB=wx.cloud.database().collection("dataList");
Page({

  /**
   * 页面的初始数据
   */
  data: {
    content:'',
    activeList:[],
    isCheckShow:false,
    allCheck:false,
    numSum:0,
  },

  /**
   * 长按事件
   */
  editList(e){
    const that=this;
    wx.showActionSheet({
      alertText:'关于“'+e.currentTarget.dataset.user+'”的记录',
      itemList:['编辑','删除'],
      itemColor:'#5EC2F6',
      success(res){
        if(res.tapIndex==0){
          wx.navigateTo({
            url: '/pages/edit/edit?id='+e.currentTarget.dataset.id
          })
        }else{

          wx.showModal({
            title:'删除记录',
            content:'确定删除？',
            success (res) {
              if (res.confirm) {
                wx.showLoading({
                  title: '删除中...',
                })
                DB.doc(e.currentTarget.dataset.id).remove({
                  success(rem){
                    wx.hideLoading();
                    that.showLoad();
                    wx.showToast({
                      title: '删除成功'
                    })
                  },
                  fail(){
                    wx.hideLoading();
                    wx.showToast({
                      title: '删除失败',
                      icon:'error'
                    })
                  }
                })
              } else if (res.cancel) {
                console.log('用户点击取消')
              }
            }
          })

        }
      }
    })
  },

  /**输入框变化事件 */
  handleInput(e){

      this.setData({
        content:e.detail.value
      })

  },

    /**管理礼单 */
    handleEdit(){
      this.setData({
        isCheckShow:!(this.data.isCheckShow)
      })
      this.loadData();
    },

  /**复选框 */
  handleItem(e){
    let id=e.currentTarget.dataset.id;
    let {activeList}=this.data;
    let index=activeList.findIndex(v=>v._id===id);
    activeList[index].cheked=!activeList[index].cheked;
    
    let allCheck=false;
    let numSum=0;
    
    activeList.forEach(e => {
      if(e.cheked){
          numSum+=1;
      }else{
        allCheck=false;
      }
    })
    //判断购物车数组长度是不是空的
    allCheck=activeList.length?activeList.every(v=>v.cheked):false;
    allCheck=activeList.length?allCheck:false;
    
    this.setData({
      activeList:activeList,
      allCheck:allCheck,
      numSum:numSum
    })
  },

  /**点击全选 */
  handleAll(){
    let {allCheck}=this.data;
    let {activeList}=this.data;
    allCheck=!allCheck;
    activeList.forEach(e => {
      e.cheked=allCheck
    })
    let numSum=0;
    activeList.forEach(e => {
      if(e.cheked){
          numSum+=1;
      }else{
        allCheck=false;
      }
    })
    this.setData({
      allCheck:allCheck,
      activeList:activeList,
      numSum:numSum
    })
  },

  /**删除选中 */
  delAll(){
    wx.showLoading({
      title: '删除选中',
    })
    const that =this;
    let {activeList}=this.data;

    // 将选中的放到一个数组，并且更新本地的数据
    let delArr=[];
    for(let i=0;activeList[i]!=undefined;){
      if(activeList[i].cheked){
        delArr.push(activeList[i]._id);
        activeList.splice(i,1);
      }else{
        i=i+1;
      }
    }

    wx.cloud.callFunction({
      name:'delAll',
      data:{
        arr:delArr
      },
      success(ret){
        // console.log(ret);
        that.setData({
          activeList:activeList
        })
        that.loadData();
        wx.hideLoading();
        wx.showToast({
          title: '删除'+ret.result.stats.removed+'条',
        })
        
      },
      fail(e){
        wx.hideLoading();
        wx.showToast({
          title: '删除失败',
          icon:'error'
        })
        console.log("调用失败"+e);
      }
    })
  },

  /**重新根据本地数据加载显示是否全选和选中多少条 */
  loadData(){
    const {activeList}=this.data;
    let numSum=0;
    let allCheck=false;
    activeList.forEach(e => {
      if(e.cheked){
          numSum+=1;
      }
    })
    if(numSum==activeList.length){
      allCheck=true;
    }
    this.setData({
      allCheck:allCheck,
      numSum:numSum
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      content:options.content
    })
    this.showLoad();
  },

  /**
   * 根据当前内容搜索
   */
  showLoad(){

    if(this.data.content==''){
      wx.showToast({
        title: '搜索框内容不能为空',
        icon:'none'
      })
    }else{
      wx.showLoading({
        title: '加载中...'
      })
      const that=this;
      const openid=wx.getStorageSync('openid');
      DB.where({
        _openid:openid,
        user:{
          $regex:'.*'+that.data.content+'.*',
          $options:'i'
        }
      }).get({
        success(res){
          that.setData({
            activeList:res.data
          })
          wx.hideLoading()
          if(res.data.length==0){
            wx.showToast({
              title: '没有找到相关记录',
              icon:'none'
            })
          }
          wx.stopPullDownRefresh()
        }
      })
    }

  },


  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    this.showLoad();
  },

  onShow: function (){
    this.showLoad();
  }
})